package TemplatePattern;

import TemplatePattern.application.CoffeeWithHook;
import TemplatePattern.first.NewCoffee;
import TemplatePattern.first.NewTea;

/**
 * 模板方法模式在一个方法中定义了一个算法的骨架，
 * 而将一些步骤延迟到子类中，模板方法使得子类可以在不改变算法结构的情况下，
 * 重新定义算法中的某些步骤。
 */
public class TestMain {
    public static void main(String[] args) {
        NewTea tea = new NewTea();
        tea.prepareRecipe();
        NewCoffee coffee = new NewCoffee();
        coffee.prepareRecipe();
        CoffeeWithHook coffeeWithHook = new CoffeeWithHook();
        coffeeWithHook.prepareRecipe();
        System.out.println("\nMaking coffee");
    }
}
